import provinces from 'china-division/dist/provinces.json';
import cities from 'china-division/dist/cities.json';
import areas from 'china-division/dist/areas.json';

areas.forEach((area) => {
  const matchCity: any = cities.filter(
    (city) => city.code === area.cityCode,
  )[0];
  if (matchCity) {
    matchCity.children = matchCity.children || [];
    matchCity.children.push({
      label: area.name,
      value: area.code,
    });
  }
});

cities.forEach((city) => {
  const matchProvince: any = provinces.filter(
    (province) => province.code === city.provinceCode,
  )[0];
  if (matchProvince) {
    matchProvince.children = matchProvince.children || [];
    matchProvince.children.push({
      label: city.name,
      value: city.code,
      children: city.children,
    });
  }
});

interface OptionsInter {
  label: string;
  code: number;
  children: OptionsInter[];
}
const provinceOptions = provinces.map((province) => ({
  label: province.name,
  value: province.code,
  children: province.children,
}));

export function codeToName(arr: Array<number | string>) {
  const addArr = [provinces, cities, areas];
  const name = arr.map((item, index) => {
    const nowArr = addArr[index];
    const res = nowArr.find((nowItem) => nowItem.code === item);
    return res?.name;
  });
  return name;
}

export default provinceOptions;
